// import { Injectable, EventEmitter } from '@angular/core';
// import { Headers, Http, RequestOptions, Jsonp } from '@angular/http';
// import { Observable } from 'rxjs/Observable';
// import { Subject } from 'rxjs/Subject';
// import 'rxjs/add/observable/of';
// import 'rxjs/add/operator/catch';
// import 'rxjs/add/operator/debounceTime';
// import 'rxjs/add/operator/distinctUntilChanged';
// import { BehaviorSubject } from 'rxjs/BehaviorSubject';
// import { ResponseModel } from '../model/comm/response-model';
// import { ReportUrls } from './report.urls.conf';
// import { Shift } from '../model/report/shift';
// declare const $: any;
// import * as moment from 'moment';
// import { GlobalDataManager } from 'app/ptpmc/comm/global-data-manager';
// import * as Enumerable from 'linq';
// import { TVResource } from 'app/ptpmc/model/comm/tv-resource';
// import { SubArea } from 'app/ptpmc/model/report/sub-area';
// import { Project } from 'app/ptpmc/model/comm/config-data';
// import { ease } from '_@types_d3@3.5.40@@types/d3';
// import { debounce } from '_rxjs@5.5.5@rxjs/operator/debounce';
// import { LocalStorage } from 'app/ptpmc/localstorage/local.storage';
// import { AuthHttp } from 'angular2-jwt';
// import { Router, ActivatedRoute } from '@angular/router';

// @Injectable()
// export class BaseHttp extends Http {
//     constructor() {
//         super()
//     }
//     request(url: string | Request, options?: RequestOptionsArgs): Observable<Response> {
//         const token = localStorage.getItem(AppConstants.tokenName)
//         if (typeof url === 'string') { // meaning we have to add the token to the options, not in url
//             if (!options) {
//                 options = new RequestOptions({})
//             }
//             options.headers.set(AppConstants.authHeaderName, token)
//         } else {
//             url.headers.set(AppConstants.authHeaderName, token)
//         }
//         return super.request(url, options)
//     }
// }